As computer technology has advanced and evolved, so too have the user interfaces (UIs) that computers present to users. Graphical user interfaces (GUIs) have become commonplace, resulting in user interfaces that are typically easier for users to interact with. Many different presentation models can be used with GUIs that allow command options to be presented to users in different ways, such as menus, toolbars, buttons, links, and so forth.
One problem faced when designing such GUIs is the different presentation models that can be used with the GUIs. Typically, a provider of a command must write a separate description and interface for each different presentation model supported by the GUI that the command is to be included in. This results in additional and duplicative work on the part of the provider of the command. Additional problems can result in situations where new presentation models are developed subsequent to the provider writing the command—as the provider writing the command does not know of the new presentation model, he or she typically cannot write the command to support the new presentation model.
Thus, it would be beneficial to have a way to implement commands that reduces these problems.